package com.situ.mall.base.service.impl;

import com.situ.mall.base.entity.Category;
import com.situ.mall.base.exception.InfoException;
import com.situ.mall.base.mapper.CategoryMapper;
import com.situ.mall.base.service.ICategoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.situ.mall.base.util.AvatarUtil;
import com.situ.mall.base.util.C;
import com.situ.mall.base.vo.CategoryVO;
import com.situ.mall.base.vo.LayuiTableVO;
import com.situ.mall.base.vo.ResVO;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author darling
 * @since 2023-03-20
 */
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements ICategoryService {


    /**
     * 后台管理
     */
    @Override
    public List<Category> getCategoryList(Integer id) {
        return baseMapper.getCategoryList(id);
    }

    @Override
    public LayuiTableVO doList() {
        return LayuiTableVO.data(baseMapper.selectList(null));
    }

    @Override
    public void doDel(Integer id) {
        // id参数是要删除的分类的ID
        List<Category> list = baseMapper.selectByParentId(id);// 查此分类有没有子分类
        if (list != null && list.size() > 0) {// 有  --> 错误提示
            throw new InfoException("存在子分类,不可删除！", 500);
        }
        baseMapper.deleteById(id);// 没有 -> 删除
    }

    // 文件上传
    @Override
    public synchronized ResVO avatar(MultipartFile file) {
        AvatarUtil avatarUtil = new AvatarUtil();
        String path = C.PRODUCT_PATH;
        String filename = System.currentTimeMillis()  + C.PNG;
        return avatarUtil.avatar(file, path, filename);
    }

    /**
     * 前台管理
     */
    @Override
    public List<CategoryVO> indexList() {
        return baseMapper.indexList();
    }


}
